package com.qezhhnjy.huawei.topic;

import java.util.Scanner;

/**
 * @author qezhhnjy
 * @date 2021/6/19-1:26
 * <p>
 * 描述
 * 功能:输入一个正整数，按照从小到大的顺序输出它的所有质因子（重复的也要列举）（如180的质因子为2 2 3 3 5 ）
 * <p>
 * 最后一个数后面也要有空格
 * <p>
 * 输入描述：
 * 输入一个long型整数
 * <p>
 * 输出描述：
 * 按照从小到大的顺序输出它的所有质数的因子，以空格隔开。最后一个数后面也要有空格。
 */
public class Topic6 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextLong()) {
            long data = in.nextLong();
            while (data > 1) {
                // 思路：从2开始除，第一个能除尽的必然是质数
                for (long i = 2; i <= data; i++) {
                    if (data % i == 0) {
                        data /= i;
                        System.out.print(i + " ");
                        break;
                        // 如果遍历到大于data的二次方则表明data是质数
                    } else if (i >= Math.sqrt(data)) {
                        System.out.println(data + " ");
                        data /= data;
                    }
                }
            }
        }
    }
}
